import os
#from apscheduler.jobstores.memory import MemoryJobStore #内存做后端存储
#from apscheduler.jobstores.redis import RedisJobStore #redis做后端存储
from schedulers.base import SQLAlchemyJobStore #mysql等做后端存储
from study_apscheduler import settings
from schedulers.logger import scheduler_logger
#mysql://root:ldc-root@127.0.0.1:3306/jobs?charset=utf8
MYSQL_CONFIG = settings.DATABASES.get('default')
MYSQL_USER = MYSQL_CONFIG.get('USER')
MYSQL_PASSWORD = MYSQL_CONFIG.get('PASSWORD')
MYSQL_HOST = MYSQL_CONFIG.get('HOST')
MYSQL_PORT = MYSQL_CONFIG.get('PORT')
MYSQL_NAME = MYSQL_CONFIG.get('NAME')
MYSQL_CHARSET = 'utf8mb4'
URL = 'mysql://{}:{}@{}:{}/{}?charset={}'.format(MYSQL_USER,MYSQL_PASSWORD,MYSQL_HOST,MYSQL_PORT,MYSQL_NAME,MYSQL_CHARSET)
#时区
TIME_ZONE = 'Asia/Shanghai'
#job的默认配置
JOB_DEFAULTS =  {
        'coalesce': True, #系统挂掉，任务积攒多次为执行，True是合并成一次执行，False是执行所有的次数。 持久化存储才有效
        'max_instances': 3 # 同一个任务同一时间最多只能有3个实例在运行。
    }
#job的存储后端
JOB_STORE = {
    'default': SQLAlchemyJobStore(url=URL)
}

#日志处理器
Scheduler_Logger = {
    'logger':scheduler_logger
}
#监听事件对应的情况
LISTENER={
    1:'调度程序启动',
    2:'调度程序关闭',
    4:'调度程序中任务处理暂停',
    8:'调度程序中任务处理恢复',
    16:'将执行器添加到调度程序中',
    32:'执行器从调度程序中删除',
    64:'将任务存储添加到调度程序中',
    128:'任务存储从调度程序中删除',
    256:'所有任务从所有任务存储中删除或从一个特定的任务存储中删除	',
    512:'添加新的定时任务',
    1024:'从任务存储中删除了任务',
    2048:'从调度程序外部修改了任务',
    4096:'任务执行成功',
    8192:'任务在执行期间引发异常',
    16384:'错误了任务执行',
    32768:'任务已经提交到执行器中执行',
    65536:'任务因为达到最大并发执行时，触发的事件'
}
